tmem: fix regression from c/s 19886 "Remove page-scrub lists and async scrubbing"
authorKeir Fraser <keir.fraser@citrix.com>
Mon, 23 Nov 2009 06:45:03 +0000 (06:45 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Mon, 23 Nov 2009 06:45:03 +0000 (06:45 +0000)
Fix incorrect page_list macro choice from page-scrub code cleanup.

Signed-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>
xen/common/tmem_xen.c

index 12f249149b63306dc837b683c0fa7a5a4f81d891..26f593417e7078bb297c8a5a5652e8e44fa268ca 100644 (file)
@@ -213,12 +213,13 @@ EXPORT void tmh_release_avail_pages_to_host(void)
     spin_lock(&tmh_page_list_lock);
     while ( !page_list_empty(&tmh_page_list) )
     {
-        struct page_info *pg = page_list_first(&tmh_page_list);
+        struct page_info *pg = page_list_remove_head(&tmh_page_list);
         scrub_one_page(pg);
+        tmh_page_list_pages--;
         free_domheap_page(pg);
     }
+    ASSERT(tmh_page_list_pages == 0);
     INIT_PAGE_LIST_HEAD(&tmh_page_list);
-    tmh_page_list_pages = 0;
     spin_unlock(&tmh_page_list_lock);
 }